
package net.virtualearth.dev.webservices.v1.imagery;

import java.util.concurrent.Future;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.AsyncHandler;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.Response;
import javax.xml.ws.ResponseWrapper;
import net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadataResponse;
import net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUriResponse;


/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.4-hudson-208-
 * Generated source version: 2.1
 * 
 */
@WebService(name = "IImageryService", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
@XmlSeeAlso({
    net.virtualearth.dev.webservices.v1.search.ObjectFactory.class,
    net.virtualearth.dev.webservices.v1.imagery.ObjectFactory.class,
    net.virtualearth.dev.webservices.v1.common.ObjectFactory.class,
    net.virtualearth.dev.webservices.v1.imagery.contracts.ObjectFactory.class,
    com.microsoft.schemas._2003._10.serialization.ObjectFactory.class,
    com.microsoft.schemas._2003._10.serialization.arrays.ObjectFactory.class
})
public interface IImageryService {


    /**
     * 
     * @param request
     * @return
     *     returns javax.xml.ws.Response<net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadataResponse>
     */
    @WebMethod(operationName = "GetImageryMetadata", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetImageryMetadata")
    @RequestWrapper(localName = "GetImageryMetadata", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadata")
    @ResponseWrapper(localName = "GetImageryMetadataResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadataResponse")
    public Response<GetImageryMetadataResponse> getImageryMetadataAsync(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        ImageryMetadataRequest request);

    /**
     * 
     * @param request
     * @param asyncHandler
     * @return
     *     returns java.util.concurrent.Future<? extends java.lang.Object>
     */
    @WebMethod(operationName = "GetImageryMetadata", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetImageryMetadata")
    @RequestWrapper(localName = "GetImageryMetadata", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadata")
    @ResponseWrapper(localName = "GetImageryMetadataResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadataResponse")
    public Future<?> getImageryMetadataAsync(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        ImageryMetadataRequest request,
        @WebParam(name = "asyncHandler", targetNamespace = "")
        AsyncHandler<GetImageryMetadataResponse> asyncHandler);

    /**
     * 
     * @param request
     * @return
     *     returns net.virtualearth.dev.webservices.v1.imagery.ImageryMetadataResponse
     * @throws IImageryServiceGetImageryMetadataResponseSummaryFaultFaultMessage
     */
    @WebMethod(operationName = "GetImageryMetadata", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetImageryMetadata")
    @WebResult(name = "GetImageryMetadataResult", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
    @RequestWrapper(localName = "GetImageryMetadata", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadata")
    @ResponseWrapper(localName = "GetImageryMetadataResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetImageryMetadataResponse")
    public ImageryMetadataResponse getImageryMetadata(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        ImageryMetadataRequest request)
        throws IImageryServiceGetImageryMetadataResponseSummaryFaultFaultMessage
    ;

    /**
     * 
     * @param request
     * @return
     *     returns javax.xml.ws.Response<net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUriResponse>
     */
    @WebMethod(operationName = "GetMapUri", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetMapUri")
    @RequestWrapper(localName = "GetMapUri", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUri")
    @ResponseWrapper(localName = "GetMapUriResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUriResponse")
    public Response<GetMapUriResponse> getMapUriAsync(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        MapUriRequest request);

    /**
     * 
     * @param request
     * @param asyncHandler
     * @return
     *     returns java.util.concurrent.Future<? extends java.lang.Object>
     */
    @WebMethod(operationName = "GetMapUri", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetMapUri")
    @RequestWrapper(localName = "GetMapUri", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUri")
    @ResponseWrapper(localName = "GetMapUriResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUriResponse")
    public Future<?> getMapUriAsync(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        MapUriRequest request,
        @WebParam(name = "asyncHandler", targetNamespace = "")
        AsyncHandler<GetMapUriResponse> asyncHandler);

    /**
     * 
     * @param request
     * @return
     *     returns net.virtualearth.dev.webservices.v1.imagery.MapUriResponse
     * @throws IImageryServiceGetMapUriResponseSummaryFaultFaultMessage
     */
    @WebMethod(operationName = "GetMapUri", action = "http://dev.virtualearth.net/webservices/v1/imagery/contracts/IImageryService/GetMapUri")
    @WebResult(name = "GetMapUriResult", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
    @RequestWrapper(localName = "GetMapUri", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUri")
    @ResponseWrapper(localName = "GetMapUriResponse", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts", className = "net.virtualearth.dev.webservices.v1.imagery.contracts.GetMapUriResponse")
    public MapUriResponse getMapUri(
        @WebParam(name = "request", targetNamespace = "http://dev.virtualearth.net/webservices/v1/imagery/contracts")
        MapUriRequest request)
        throws IImageryServiceGetMapUriResponseSummaryFaultFaultMessage
    ;

}
